﻿using System;
using System.Collections.Generic;
using System.Text;
using LibNoise;

namespace SampleImageGenerator.Modules.Operations
{
	internal class Add : IModule
	{
		private List<IModule> m_modules;

		public Add()
		{
			m_modules = new List<IModule>();
		}

		public IModule[] Modules
		{
			get
			{
				return m_modules.ToArray();
			}
			set
			{
				m_modules.Clear();
				m_modules.AddRange(value); 
			}
		}

		public void AddModule(IModule module)
		{
			m_modules.Add(module); 
		}

		public double GetValue(Double x, Double y, Double z)
		{
			Double value = 0;

			foreach (IModule module in m_modules)
			{
				value += module.GetValue(x, y, z);
			}

			return value; 
		}
	}
}
